/**
 * utils/configLoader.js
 * 动态加载配置文件的通用工具
 */

const fs = require('fs');
const path = require('path');

/**
 * 加载指定路径下的配置文件 config.json
 * @param {string[]} searchPaths - 要尝试搜索的路径数组
 * @returns {object|null} 加载成功返回配置对象，否则返回 null
 */
function loadConfig(searchPaths = []) {
  let loadedConfig = null;

  try {
    let configPath = null;
    for (const p of searchPaths) {
      if (fs.existsSync(p)) {
        configPath = p;
        break;
      }
    }

    if (!configPath) {
      console.warn(`configLoader: 未找到配置文件，尝试路径:`, searchPaths);
      return null;
    }

    const configData = fs.readFileSync(configPath, 'utf8');
    loadedConfig = JSON.parse(configData);

    console.log('✅ 配置加载成功:', {
      path: configPath,
      info: loadedConfig.config_info || '',
      workflow_mapping_count: Object.keys(loadedConfig.workflow_mappings || {}).length
    });

    return loadedConfig;
  } catch (error) {
    console.error('❌ 加载配置文件失败:', error.message);
    return null;
  }
}

module.exports = {
  loadConfig
};